package pe.tnova.cliente.proyecto.core.daobase;
import java.util.Date;
import java.util.List;
import pe.tnova.library.util.Exception.SQLExceptionDAO;
import pe.tnova.core.db.DAOUtil;
import pe.tnova.core.db.JoinEntidad;
import pe.tnova.cliente.proyecto.core.dominio.Asiento;
import pe.tnova.cliente.proyecto.core.daobase.impl.AsientoDAOBaseImpl.AsientoDAOBaseUtil;

public interface AsientoDAOBase{

	public static final String STR_ENTIDAD = "Asiento";
	public static final String CAMPO_ID= "id";
	public static final String CAMPO_NUMERO= "numero";
	public static final String CAMPO_TRIBUNA= "tribuna";
	public static final String ESTADIO_CAMPO_ESTADIO= "estadio";
	public static final String CAMPO_ACTIVO= "activo";
	public static final String CAMPO_CODIGOUSUARIO= "codigoUsuario";
	public static final String CAMPO_FECHAREGISTRO= "fechaRegistro";
	public static final String CAMPO_CODIGOUSUARIOACTULIZAR= "codigoUsuarioActulizar";
	public static final String CAMPO_FECHAACTUALIZADA= "fechaActualizada";

	
	public static final String SQL_QUERY = DAOUtil.SQL_SELECT + DAOUtil.SQL_SE + DAOUtil.SQL_FROM + STR_ENTIDAD + DAOUtil.SQL_SE;
	public static final String SQL_QUERY_COUNT = DAOUtil.SQL_SELECT + DAOUtil.SQL_COUNT + "(" + DAOUtil.SQL_SE + ")" + DAOUtil.SQL_FROM + STR_ENTIDAD + DAOUtil.SQL_SE;
	public static final String SQL_QUERY_ID=DAOUtil.SQL_SELECT+" new "+STR_ENTIDAD+" ( "+DAOUtil.SQL_SEA+CAMPO_ID+" ) "+DAOUtil.SQL_FROM+STR_ENTIDAD+DAOUtil.SQL_SE;
	public static final String SQL_QUERY_ID_NUMERO=DAOUtil.SQL_SELECT+" new "+STR_ENTIDAD+" ( "+DAOUtil.SQL_SEA+CAMPO_ID+","+DAOUtil.SQL_SEA+CAMPO_NUMERO+" ) "+DAOUtil.SQL_FROM+STR_ENTIDAD+DAOUtil.SQL_SE;

	public static final String SQL_QUERY_CBO =   DAOUtil.SQL_SELECT + DAOUtil.SQL_SEA + CAMPO_ID + "," + DAOUtil.SQL_SEA + CAMPO_NUMERO + DAOUtil.SQL_FROM + STR_ENTIDAD + DAOUtil.SQL_SE;

	
	public int countListaAsiento( Asiento filtro ) throws SQLExceptionDAO;
	public int countListaAsiento( Asiento filtro, Date finit, Date ffin ) throws SQLExceptionDAO;
	public List<Asiento> getListaAsiento( Asiento filtro, int inicio, int fin, String strSort, String strOrder, JoinEntidad... innerjoin ) throws SQLExceptionDAO;
	public List<Asiento> getListaAsiento( Asiento filtro, Date finit, Date ffin, int inicio, int fin, String strSort, String strOrder, JoinEntidad... innerjoin ) throws SQLExceptionDAO;
	public List<Asiento> getAsientoPorId(Asiento filtro, int inicio, int fin, String strSort, String strOrder, JoinEntidad... innerjoin) throws SQLExceptionDAO;
	public List<Asiento> getAsientoPorIdPorNumero(Asiento filtro, int inicio, int fin, String strSort, String strOrder, JoinEntidad... innerjoin) throws SQLExceptionDAO;
	public List<Asiento> getAsientoPorId(Asiento filtro, Date finit, Date ffin, int inicio, int fin, String strSort, String strOrder, JoinEntidad... innerjoin) throws SQLExceptionDAO;
	public List<Asiento> getAsientoPorIdPorNumero(Asiento filtro, Date finit, Date ffin, int inicio, int fin, String strSort, String strOrder, JoinEntidad... innerjoin) throws SQLExceptionDAO;

	public List<Asiento> getCboAsiento() throws SQLExceptionDAO;
	public List<Asiento> getCboAsiento( Asiento filtro ) throws SQLExceptionDAO;
	public List<Asiento> getAsientoPorID( Integer[] ids , String tipo , JoinEntidad innerjoin ) throws SQLExceptionDAO;
	public AsientoDAOBaseUtil setQuery();

}
